package com.zmm.zebulon.starter.protection.idempotent.core.keyresolver;

import com.zmm.zebulon.starter.protection.idempotent.core.annotation.Idempotent;
import org.aspectj.lang.JoinPoint;

/**
 * description: 幂等 Key 解析器接口
 *
 * @author zebulon
 * package com.zmm.zebulon.starter.protection.idempotent.core.keyresolver
 * name: IdempotentKeyResolver
 * date 2024/1/7 15:29
 */
public interface IdempotentKeyResolver {

    /**
     * 解析一个 Key
     *
     * @param idempotent 幂等注解
     * @param joinPoint  AOP 切面
     * @return Key
     */
    String resolver(JoinPoint joinPoint, Idempotent idempotent);

}
